﻿using Awsc.DataAcquisitionSys.Core.Model;

namespace Awsc.DataAcquisitionSys.Core.Service.Alarm.Interfaces
{
    public interface IAlarmRule
    {
        int Id { get; set; }
        string Name { get; set; }
        string Description { get; set; }
        AlarmRuleType RuleType { get; set; }
        RuleStatus Status { get; set; }
        AlarmLevel AlarmLevel { get; set; }
        bool IsBuildInRule { get; set; }
        string Condition { get; set; }
        List<IAlarmMethod> AlarmMethods { get; set; }
        List<string> GetAllFieldNames();
        Task Activate();
        Task Deactivate();
        void AddAlarmMethod(IAlarmMethod method);
        void RemoveAlarmMethod(IAlarmMethod method);
    }
}
